1. Technical Field
The present invention relates to systems and methods for analyzing patterns present in data, and in particular to a system and method for performing real-time pattern recognition in noisy or cluttered multi-dimensional data.
2. Discussion
Automatic pattern recognition is an important function in many areas of technology. A pattern to be recognized may exist in visible images, or in data from many other sources such as infrared, sonar or in data from non-sensory sources. The pattern recognition task is generally broken down into a number of stages. Low level tasks involve gathering and filtering noise from the raw data. Mid-level tasks generally involve associating, or clustering multiple data points into primitive constructs such as edges, lines, curves, etc. High-level pattern recognition tasks are performed on these constructs to perform further association, classification and identification of the patterns present in the data.
One of the chief difficulties with automatic pattern recognition is the presence of unwanted noise or clutter in the image. Noise may originate from unwanted signal disturbances or imperfections in the sensors. Clutter generally refers to extraneous data having patterns which cause difficulty in separating the desired patterns from this background clutter. It is generally a goal of low and mid-level pattern recognition processing to reduce or eliminate noise and clutter from the data. Once this is done higher level processing involving clustering and enhancing the data can be performed.
A number of systems and methods exist for performing pattern recognition. Conventional approaches include highly CPU intensive line-enhancement algorithms, line detection algorithms, and tree-search algorithms. These typically rely on sequential processing techniques and require explicit signal processing algorithms. However, developing the explicit algorithm and software is often extremely time consuming, and the results are only as good as the algorithm. Thus, where assumptions are made by the developer of the algorithm, the processing will not yield good results for cases where these assumptions do not apply. Further, some problems simply have defied the ability to develop satisfactory algorithms. In addition, sequential processing techniques generally are CPU intensive and often cannot perform processing with the desired speed. Also, such systems often are complex, costly, and not fault tolerant. In addition, techniques relying on explicit algorithms often are limited to narrow classes of problems and new algorithms must be developed to handle different kinds of data, or to handle data from different domains.
Thus, it would be desirable to have a pattern recognition system which does not require explicit algorithm development. Further, it would be desirable to have such a system which can perform pattern recognition at relatively high speeds, which is not CPU intensive. In addition, it would be desirable to have such a system which exhibits a high degree of fault tolerance. Also it would be desirable to have a pattern recognition system which can adapt to new types of data and new classes of problems without extensive modification. Finally, it would be desirable to have a pattern recognition system which does not require complex or expensive hardware.